package crypto

import (
	"crypto/md5"
	"encoding/hex"
)

// MD5 对字节流进行 MD5 加密，返回 32 位小写 hex 字符串
func MD5(data []byte) string {
	// 创建 MD5 哈希对象
	hash := md5.New()
	// 写入数据
	hash.Write(data)
	// 计算哈希值，返回 16 字节的哈希结果
	bytes := hash.Sum(nil)
	// 转换为 32 位小写 hex 字符串
	return hex.EncodeToString(bytes)
}

// MD5FromString 对字符串进行 MD5 加密，返回 32 位小写 hex 字符串
func MD5String(s string) string {
	// 直接调用 MD5 函数，将字符串转换为字节流
	return MD5([]byte(s))
}
